/**
 * @file 路由主页面
 * @author fanxingguang@baidu.com
 */

var fs = require('fs');
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var path = require('path');
// 连接数据库
mongoose.connect('mongodb://localhost/fxg');


// 定义全局的Vue为了服务端的app.js
global.Vue = require('vue');
// 获取HTML布局
var layout = fs.readFileSync(path.normalize(__dirname + '/../public/assets/index/index.html'), 'utf8');
// 创建一个渲染器
var renderer = require('vue-server-renderer').createRenderer();

router.get('/', function (req, res) {
    res.sendFile(path.normalize(__dirname + '/../www/dist/index.html'));
});
router.get('/test', function (req, res) {
    // 渲染我们的Vue应用为一个字符串
    renderer.renderToString(
        // 创建一个应用实例
        require('../public/assets/index/app')(),
        // 处理渲染结果
        function (error, html) {
            // 如果渲染时发生了错误
            if (error) {
                // 打印错误到控制台
                console.error(error);
                // 告诉客户端错误
                return res
                    .status(500)
                    .send('Server Error');
            }
            // 发送布局和HTML文件
            res.send(layout.replace('<div id="app"></div>', html));
        }
    );
});

module.exports = router;
